سفارش تبلیغ
صبا ویژن
از روی دوستی نگریستن به چهره دانشمندعبادت است . [پیامبر خدا صلی الله علیه و آله]
PCIExpress-PCIe

PCIExpress-PCIe

فلسفه وجودی PCI Express

? این قسمت خیلی مهمه حتما بخونید :

از سال های قبل ، یکی از بزرگترین دغدغه های مهندسین سخت افزار کامپیوتر این بوده که دستگاه های جانبی رو چطور به کامپیوتر وصل کنیم . در این بین مشکلاتی مثل نویز ، پهنای باند ، سرعت انتقال ، سازگاری ، هزینه و خیلی مسائل دیگه وجود داشتن . دستگاه های جانبی مثل حافظه ها ، کارت گرافیک و کارت شبکه دستگاه هایی هستن که باید به یه شکلی به کامپیوتر وصل می شدن . واسه این کار ، استانداردهای زیادی معرفی شد .

ما به گذشته های دور کاری نداریم ، در سال 1992 شرکت اینتل یه استانداردی به نام PCI معرفی کرد . PCI در واقع یک مسیر مشترک برای اشتراک دیتا در دستگاه های مختلف بود . اساس کار PCI بر انتقال اطلاعات به صورت موازی بود یعنی به ازای هر بیت ، یک سیم باید در نظر گرفته میشد . مثلا اگه 32 بیتی بود 32 تا سیم باید روی مادربورد طراحی می شد تازه جدای خطوط کنترلی که واجب بودن . در انتقال موازی ، 32 تا بیت می تونن به طور همزمان و در یک کلاک پالس عبور کنن . شاید تو نگاه اول خوب باشه اما مشکلاتی هم داره . وقتی جریان از داخل یه سیم عبور میکنه میدان الکترومغناطیسی اطراف اون سیم ایجاد میشه که می تونه روی جریان سیم کناری تاثیر بذاره حالا هرچی سرعت کلاک پالس ( حتما بخونید ) بیشتر باشه این میدان الکترومغناطیسی بیشتر میشه . پس یکی از مشکلات این بود که نمی تونستن بیشتر از یه حدی کلاک پالس رو افزایش بدن . مشکل اصلی تاثیر میدان مغناطیسی روی دیتای سیم های کناری بود .

نویز در انتقال دیتای موازی

نویز در انتقال دیتای موازی

یه مشکل مهم تر این بود که چجوری این 32 تا سیم رو روی مادربورد پیاده سازی کنن ! خب امکان این نبود که سیم ها از نظر طول یکسان طراحی بشن واسه همین مشکلی به نام Clock Skew به وجود میومد . یعنی چی ؟ یعنی به خاطر تفاوت طول مسیرها ، یه بیت زودتر می رسید به مقصد و یه بیت دیرتر . اون بیتی که زودتر می رسید حق برگشت نداشت تا زمانی که همه بیت ها برسن . اینجوری تاخیر زمانی زیاد میشد .

تاخیر زمانی بیت ها در انتقال موازی

تاخیر زمانی بیت ها در انتقال موازی

مشکل دیگه این بود که در انتقال موازی دیتا ، دستگاه ها نمی تونن به طور همزمان دیتا بفرستن و بگیرن ، باید سیگنال رفت بره و به مقصد برسه حالا اگه اون یکی خواست سیگنال برگشت بفرسته می تونه . PCI Express از انتقال سری یا سریال استفاده میکنه . در انتقال سری ما کلا به 4 تا سیم نیاز داریم . دو تا واسه ارسال و دو تا هم واسه دریافت سیگنال . در انتقال سری هر بیت با هر کلاک پالس منتقل میشه ، در این نوع انتقال دیتا ، امکان افزایش سرعت کلاک پالس وجود داره . شاید پیش خودتون بگید سرعت انتقال دیتا در موازی که بیشتره چون در هر کلاک پالس 32 بیت جابجا میشه اما در نوع سری در هر کلاک فقط یک بیت ! خب در نوع سری سرعت کلاک رو بیشتر می کنن . مثلا پهنای باند در PCI حدود 133 مگاهرتز بود اما در نوع سری و کم سرعت ترین نوع PCI Express ، پهنای باند حدود 250 مگابایت در ثانیه هست چون کلاک پالسش 2.5 گیگاهرتزه .

در انتقال سری چون تعداد سیم ها کمه ، هزینه طراحی کمتر میشه و طراحی ساده تر میشه و البته نویز کمتری هم داریم . اما برای رفع مشکل نویز در انتقال سری از تکنیکی به نام Noise Cancellation استفاده میکنن . چجوری ؟ به این شکل که سیگنال های ارسالی رو به صورت زوج می فرستن ، یکی مثبت و یکی منفی اما هم شکل و معادل ، در مقصد این دو سیگنال با هم مقایسه میشن و باید مثل هم باشن ، تفاوت بین این دو سیگنال میشه نویز و به سادگی توسط گیرنده قابل تشخیص میشه و سیگنال اصلی رو جدا میکنه .

چگونگی انتقال دیتا در نوع سریال PCI Express

چگونگی انتقال دیتا در نوع سریال PCI Express

PCI Express چیست ؟

PCI Express مخفف عبارت Peripheral Component Interconnect Express به مفهوم اتصال سریع تجهیزات جانبی کامپیوتر هست . PCI Express به صورت مخفف PCIe هم گفته میشه البته در بعضی منابع به اشتباه PCI-E هم میگن اما حالت اختصار رسمی به صورت PCIe هست .

لوگوی PCI Express

لوگوی PCI Express

استاندارد PCI Express توسط گروه مهندسی PCI-SIG طراحی شده که اعضای اصلی اون شرکت های اینتل ، اچ پی ، Dell و IBM هستن . این گروه حدود 800 عضو داره که در راستای بهبود و گسترش تکنولوژی PCI Express فعالیت می کنن . PCI Express چهار تا نسخه مختلف داره که در ادامه می گم .

به زبون ساده ، اگه مادربورد کامپیوترتون رو نگاه کنید یه قسمتش یه سری اسلات های بزرگ و کوچیک کنار همن که کارت گرافیک تون هم همونجا نصبه . اون کارت گرافیک از طریق همین تکنولوژی PCI Express به مادربورد در ارتباط هست و اسم اون اسلات هم اسلات PCI Express هست .

اسلات PCI Express روی مادربورد

اسلات PCI Express روی مادربورد

PCI Express چگونه کار می کند ؟

PCI Express بر اساس مسیرهایی به نام Lane کار میکنه ، هر lane دو تا مسیر داره ، یکی برای ارسال و یکی هم برای دریافت دیتا . در واقع هر مسیر خودش به 2 تا سیم تقسیم میشه یعنی مسیر ارسال 2 تا سیم و مسیر دریافت هم 2 تا سیم . پس مجموعا هر lane چهار تا سیم داره . این خطوط ارتباطی ( lane ) به صورت تک بیتی و ارسال و دریافت همزمان کار می کنن . هرچی این خطوط بیشتر باشه ، دیتای بیشتری عبور میکنه پس پهنای باند بیشتر میشه . این خطوط رو با حرف x و یه عدد نشون میدن مثلا x8 یعنی 8 تا خط ارتباطی بین دو دستگاه وجود داره . شکل زیر رو ببینید متوجه میشید .

 

تشریح Lane یا خطوط در PCI Express

تشریح Lane یا خطوط در PCI Express

پس سرعت انتقال دیتا در x16 از x8 و سرعت x8 از x4 یا x1 بیشتره .

تکنولوژی PCI Express نسخه یک و دو ( در ادامه میگم ) از شیوه رمزگذاری 8b/10b استفاده می کنن . یعنی چی ؟ ببینید هر 8 بیت میشه 1 بایت ، PCI Express برای انتقال دیتا به ازای هر 8 بیت ، دو تا بیت اضافه میکنه . حالا این یعنی چی و چرا ؟ دیتا ، یه مبدا و یه مقصد داره ، دو تا بیت ، یکی نشانگر مبدا و یکی هم نشانگر مقصد به هر 8 بیت اطلاعات می چسبه و در مجموع میشه 10 بیت . این دو بیت به تنهایی 20 درصد از پهنای باند رو اشغال می کنن . اما در نسخه سوم PCI Express ، از روش کد گذاری 128b/130b استفاده می کنن . یعنی به ازای هر 128 بیت دو بیت بهش می چسبه . پس اینجوری پهنای باند افزایش پیدا می کنه چون اون 2 بیت معرف که بالاتر گفتم ( بهش میگن اور هد Overhead ) پهنای باند رو اشغال می کرد دیگه . حالا به جای اینکه هر 8 بیت 2 بیت اورهد داشته باشیم ، هر 128 بیت داریم . ( 128 بیت تقسیم بر 8 میشه 16 ، حالا 16 ضرب در 2 میشه 32 بیت اورهد ، که در روش کدگذاری 128 بیت می تونست اتفاق بیفته و نمی افته )

حالا که این مسئله رو فهمیدید یه چیزی بگم : چون نسخه یک و دو تکنولوژی PCI Express هر دو از روش رمزگذاری 8b/10b استفاده می کنن ، برای دو برابر کردن پهنای باند از نسهخ یک به دو ، باید سرعت کلاک پالس نسخه دوم ، دو برابر بشه . اما نسخه سوم چون از رمزگذاری 128b/130b استفاده می کنه برای دو برابر شدن پهنای باند لازم نیست کلاک خودش رو دو برابر کنه یعنی 10 گیگاهرتز ، با 8 گیگاهرتز می تونه پهنای باند دوبرابری نسبت به نسخه دوم داشته باشه نسخه چهار PCI Express هم از رمزگذاری 128b/130b استفاده میکنه پس برای دوبرابر کردن پهنای باند نسبت به نسخه سوم ، باید کلاک پالسش رو دوبرابر کنه یعنی 16 گیگاهرتز . جدول زیر رو نگاه کنید .

مقایسه نسخه های مختلف PCI Express

مقایسه نسخه های مختلف PCI Express

پس به طور خلاصه PCI Express بر اساس انتقال دیتای سریال که از خطوط مشخصی عبور میکنن کار می کنه و برای مشخص شدن مبدا و مقصد اطلاعات از روش رمزگذاری استفاده میکنه که همین روش رمزگذاری به علاوه کلاک پالس ، پهنای باند نهایی رو تعیین میکنه .

دو تا نکته کنکوری هم بگم : اگه مثلا کارت گرافیک شما PCI Express نسخه 3 باشه اما اونو تو اسلات PCI Express نسخه دو بزنید ، سرعتش محدود میشه به پهنای باند یا سرعت نسخه دوم .

نکته دوم اینکه اسلات PCI با نسخه PCIe فرق میکنه .

PCI Express ، اسلات های مختلف

به خاطر وجود دستگاه های مختلف و صرفه جویی در هزینه و طراحی مادربوردها و مواد اولیه ، چند مدل اسلات که از نظر فیزیکی با هم فرق می کنن وجود داره . منظورم اینه از لحاظ عملکرد ریشه ای ، تفاوتی ندارن فقط پهنای باند و ظاهر متفاوت دارن . در حال حاضر اسلات های x1 و x2 و x4 و x8 و x16 موجود هستن اما اسلات های x1 و x16 خیلی بیشترن روی مادربوردها . اسلات x16 همون اسلاتی هست که کارت گرافیک تون رو توش جا می زنید .

شکل ظاهری اسلات های PCI Express

شکل ظاهری اسلات های PCI Express

نکته جالب اینه که شما می تونید یه دستگاه x8 رو توی اسلات x16 جا بزنید و همون عملکرد رو ازش بگیرید اما برعکس صادق نیست چون از نظر سایز ، دستگاه x16 از اسلات x8 بزرگتره .

 

اسلات های PCI Express و PCI در مادربورد

اسلات های PCI Express و PCI در مادربورد

نسخه های مختلف PCI Express

PCI Express تا سال 2015 چهار تا نسخه مختلف داره . نسخه های PCIe 1 ، PCIe 2 ، PCIe 3 و جدیدا PCIe 4 .

در سال 2003 گروه فنی PCI-SIG نسخه اول PCI Express رو معرفی میکنن به نام دقیق PCIe 1.0a با پهنای باند 250 مگابایت در ثانیه . در سال 2005 یه اصلاحیه روی نسخه PCIe 1.0a میرن و اسمش رو PCIe 1.1 میذارن با همون پهنای باند .

در 15 ژانویه سال 2007 نسخه دوم PCI Express یعنی PCIe 2.0 معرفی شد که دو برابر نسخه اول ، پهنای باند داشت یعنی 500 مگابایت در ثانیه . مادربوردهای مجهز به نسخه دوم ، دستگاه های نسخه اول رو ساپورت میکردن . بعد از مدتی در سال 2009 ، نسخه اصلاح شده یعنی PCIe 2.1 معرفی شد که بعضی از امکانات و ویژگی های نسخه سوم رو داشت اما با همون سرعت نسخه دوم .

در سال 2010 نسخه سوم یعنی PCIe 3.0 معرفی شد که تحول بزرگی در گسترش پهنای باند PCI Express بود . الان روی مادربورد لپ تاپ و یا دسکتاپ شما احتمال خیلی زیاد نسخه سوم PCI Express وجود داره .

در سال 2011 خبر از نسخه 4 شد که انتظار میره در همین آینده نزدیک روی مادربوردها ببینیم . سرعت کلاک نسخه 4 ، دو برابر از نسخه سوم بیشتره اما روش کدگذاریش یکسانه .

تفاوت PCI Express با PCI و AGP

PCI در اصل یک باس مشترک بود ، به این شکل که همه دستگاه ها از یه باس استفاده می کردن و پهنای باند بین شون تقسیم میشد . خب مسلما دستگاهی که پهنای باند بیشتری طلب می کرد ، حق بقیه دستگاه ها رو ضایع میکرد اما استاندارد PCI Express باس نیست بلکه یه کانکشن نظیر به نظیر بین دستگاه های جانبی مثل کارت گرافیک و حافظه ها و … هست . به این شکل که هر دستگاه ، مسیر اختصاصی انتقال اطلاعات خودش رو داره و عملکرد یه دستگاه دیگه روی این دستگاه تاثیر نداره . ضمنا PCI به صورت موازی اطلاعات رو جابجا می کرد اما PCI Express به صورت سری و با سرعت بیشتر اطلاعات رو جابجا می کنه . ضمنا بسیاری از تفاوت ها رو در قسمت اولیه پست گفتم .

AGP هم که فقط برای ارتباط کامپیوتر با کارت گرافیک بوجود اومد و هیچ دستگاه دیگه ای بهش وصل نمیشه در صورتی که استاندارد PCI Express برای همه دستگاه ها کاربرد داره .

 

خب دوستان امیدوارم که مفید بوده باشه .


96/12/7::: 5:13 ع
نظر()